package com.bicon.botu.mall.order.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单导出对象封装
 *
 * @author 王开亮
 * @date 2018/6/6 15:43
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrderExportDto {

    /**
     * 订单编号
     */
    private String orderGoodsNo;
    /**
     * 订单类型
     */
    private Integer orderType;
    /**
     * 订单状态
     */
    private Integer payState;
    /**
     * 订单来源
     */
    private Integer orderSource;
    /**
     * 订单创建时间
     */
    private Date orderCreateDate;
    /**
     * 顾客账号
     */
    private String customerAccount;
    /**
     * 发票类型
     */
    private Integer invoiceType;
    /**
     * 发票抬头
     */
    private Integer invoiceTitle;
    /**
     * 单位名称
     */
    private String invoiceCompanyName;
    /**
     * 纳税人识别号
     */
    private String invoiceCode;
    /**
     * 发票内容
     */
    private String invoiceContent;
    /**
     * 收票人手机
     */
    private String invoiceReceiverTelphone;
    /**
     * 收票人邮箱
     */
    private String invoiceReceiverEmail;
    /**
     * 商品金额合计
     */
    private BigDecimal countAmount;
    /**
     * 运费
     */
    private BigDecimal freight;
    /**
     * 优惠合计
     */
    private BigDecimal discountMoney;
    /**
     * 订单总额
     */
    private BigDecimal totalPrice;
    /**
     * 应付金额
     */
    private BigDecimal payMoney;
    /**
     * 商品货号
     */
    private String productCode;
    /**
     * 商品名称
     */
    private String goodsName;
    /**
     * 商品单价
     */
    private BigDecimal goodsPlatformPrice;
    /**
     * 购买数量
     */
    private Integer goodsNumber;
    /**
     * 支付方式
     */
    private Integer payWay;

    /**
     * 付款时间
     */
    private Date payTime;
    /**
     * 交易号
     */
    private String payCode;
    /**
     * 收货人
     */
    private String receiverName;
    /**
     * 联系电话
     */
    private String receiverTelphone;
    /**
     * 收货人省份
     */
    private String receiverProvince;
    /**
     * 收货人城市
     */
    private String receiverCity;
    /**
     * 收货人地区
     */
    private String receiverArea;
    /**
     * 收货区人地址/提货点
     */
    private String receiverAddressDetail;
    /**
     * 备注
     */
    private String buyerMessage;
    /**
     * 发货时间
     */
    private Date deliverDate;
    /**
     * 物流公司
     */
    private String logisticsCompany;
    /**
     * 运单号
     */
    private String waybill;
    /**
     * 已退款金额
     */
    private BigDecimal quitAmount;

    /**
     * 解析订单类型 用于JXLS生成Excel时调用
     * @param orderType
     * @return
     */
    public String parseOrderType(int orderType){
        if(orderType == 1){
            return "定制订单";
        }else if(orderType == 2){
            return "普通订单";
        }
        return "";
    }

    /**
     * 解析订单状态 用于JXLS生成Excel时调用
     * @param orderStatus
     * @return
     */
    public String parseOrderStatus(int orderStatus){
        if(orderStatus==0){
            return "已提交";
        }
        else if(orderStatus==1){
            return "待支付";
        }
        else if(orderStatus==2){
            return "已支付（待发货）";
        }
        else if(orderStatus==3){
            return "已发货";
        }
        else if(orderStatus==4){
            return "交易成功";
        }
        else if(orderStatus==5){
            return "交易关闭";
        }
        else if(orderStatus==6){
            return "取消订单";
        }
        else if(orderStatus==7){
            return "交易中";
        }
        return "";
    }

    /**
     * 解析订单来源 用于JXLS生成Excel时调用
     * @param orderSource
     * @return
     */
    public String parseOrderSource(int orderSource){
        if(orderSource==0){
            return"IOS";
        }
        else if(orderSource==1){
            return"安卓";
        }
        return "";
    }

    /**
     * 解析发票类型 用于JXLS生成Excel时调用
     * @param invoiceType
     * @return
     */
    public String parseInvoiceType(int invoiceType){
        if(invoiceType == 0){
            return "普通发票";
        }else if(invoiceType == 1){
            return "电子普通发票";
        }
        return "无发票";
    }

    /**
     * 解析发票抬头 用于JXLS生成Excel时调用
     * @param invoiceTitle
     * @return
     */
    public String parseInvoiceTitle(int invoiceTitle){
        if(invoiceTitle == 0){
            return "个人";
        }else if(invoiceTitle == 1){
            return "单位";
        }
        return "";
    }

    /**
     * 解析支付方式 用于JXLS生成Excel时调用
     * @param payWay
     * @return
     */
    public String parsePayWay(int payWay){
        if(payWay==0){
            return "余额";
        }
        else if(payWay==1){
            return "支付宝";
        }
        else if(payWay==2){
            return "微信";
        }
        else if(payWay==3){
            return "银行卡";
        }
        return "";
    }


}
